package com.hsnn.medstgmini.subscribe.dao;

import java.util.List;

import com.hsnn.medstgmini.pro.project.model.BidProject;
import com.hsnn.medstgmini.subscribe.model.BidSubscribe;
import com.hsnn.medstgmini.subscribe.model.BidSubscribeDetail;
import com.hsnn.medstgmini.util.Pagination;

/**
 * @category 预约DAO 接口
 * @author 韩守松
 * @date 2015年8月27日
 */
public interface BidSubscribeDao {
	/**
	 * @category 预约设置保存
	 * @author 韩守松
	 * @date   2015年8月28日
	 * @param  @param bidSubscribe
	 */
	void save(BidSubscribe bidSubscribe);
	
	/**
	 * @category 获取预约信息
	 * @author 韩守松
	 * @date   2015年8月28日
	 * @param  @param page
	 * @param  @param bidSubscribe
	 * @param  @return
	 */
	Pagination getList(Pagination page,BidSubscribe bidSubscribe);
	
	/**
	 * @category 根据预约id 获取预约信息 
	 * @author 韩守松
	 * @date   2015年8月29日
	 * @param  @param bidSubscribeId
	 * @param  @return
	 */
	@SuppressWarnings("rawtypes")
	List getBidSubscribeById(String bidSubscribeId);
	
	/**
	 * @category 预约设置信息编辑
	 * @author 韩守松
	 * @date   2015年8月29日
	 * @param  @param bidSubscribe
	 * @param  @return
	 */
	Pagination update(BidSubscribe bidSubscribe);
	
	/**
	 * @category 预约设置状态 更新
	 * @author 韩守松
	 * @date   2015年8月30日
	 * @param  @param bidSubscribe
	 * @param  @return
	 */
	Pagination statusUpdate(BidSubscribe bidSubscribe);
	
	/**
	 * @category 预约新建状态开启 
	 * @author 韩守松
	 * @date   2015年8月30日
	 * @param  @param bidSubscribe
	 * @param  @return
	 */
	Pagination isEnableUpdate(BidSubscribe bidSubscribe);
	
	/**
	 * @category 根据预约设置id 获取预约信息
	 * @author 韩守松
	 * @date   2015年9月2日
	 * @param  @param bidSubscribeId
	 * @param  @return
	 */
	List<BidSubscribe> getBidSubscribeBySubscribeId(String bidSubscribeId);
	
	/**
	 * @category 获取预约项目信息
	 * @author 韩守松
	 * @date   2015年9月6日
	 * @param  @param page
	 * @param  @param bidProject
	 * @param  @return
	 */
	 Pagination getProjList(Pagination page,BidProject bidProject);
	 
	 /**
	  * @category 获取预约设置时间段上限人数
	  * @author 韩守松
	  * @date   2015年9月7日
	  * @param  @param bidSubscribe
	  * @param  @return
	  */
	 Integer getUntilNumber(BidSubscribe bidSubscribe);
	 
	 /**
	  * @category 获取预约企业列表信息
	  * @author 韩守松
	  * @date   2015年9月7日
	  * @param  @param bidSubscribeDetail
	  * @param  @return
	  */
	 Pagination getSubCompList(BidSubscribeDetail bidSubscribeDetail);
	 
	 Pagination getSubCompTimeTwoList(BidSubscribeDetail bidSubscribeDetail);
	 
	 /**
	  * @category 预约情况查看
	  * @author 韩守松
	  * @date   2015年9月17日
	  * @param  @return
	  */
	 Pagination getCompRecord(Pagination page,BidSubscribeDetail bidSubscribeDetail);
	 
	 /**
	  * @category 根据项目Id 获取相关预约信息
	  * @author 韩守松
	  * @date   2015年9月28日
	  * @param  @param projId
	  * @param  @return
	  */
	  BidSubscribe  getIsSubscribe(String projId);
}
